Enterprises are increasingly offering services to consumers and partners over the Internet. These services are generally embodied as one or more applications that interact with consumers or other services via World-Wide Web (WWW) browsers over the Internet. The applications that comprise a service are integrated with one another and define the available processing flows associated with a particular service. That is, each web service is defined rigidly by specific interactions of coupled applications that are integrated with one another.
As a result, new services cannot be easily and efficiently developed. This is so, because each of the applications typically includes processing logic for interacting with another one of the applications. Thus, if a new service is desired which includes only a select number of applications that make up a legacy service, then, in order to create the new service, new instances of desired applications are created. This is so, because the other applications are too integrated and too dependent (coupled) upon the processing flow associated with the legacy service. Moreover, even if components of applications are reused, a substantial amount of new code is still developed to account for new processing flows associated with a newly desired service.